/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador.Service.Configuracion;

import Controlador.Bean.Configuracion.Configuracion;
import org.apache.ibatis.session.SqlSession;
import Data.config.SessionFac;

/**
 *
 * @author Luis Enrique
 */
public class ServicioConfiguracion {
    
    private ServicioConfiguracion() {};
    
    static private ServicioConfiguracion servicioConfiguracion=null; 
		   
    public static ServicioConfiguracion getInstance(){    
        if(servicioConfiguracion==null) servicioConfiguracion= new ServicioConfiguracion();
        return servicioConfiguracion;
    }
        
    public synchronized void actualizarConfig(Configuracion config){
        try(SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            String codigo = (String)sqlsesion.selectOne("Data.Configuracion.ServicioConfiguracion.getNextCodigo");
            if(codigo!=null){
                int cod= Integer.parseInt(codigo.substring(3))+1;
                String defecto= "000000";
                String temp= defecto.substring(0, defecto.length()-String.valueOf(cod).length()).concat(String.valueOf(cod));
                config.setIdConfiguracion(codigo.substring(0,3).concat(temp));
            }
            else
                config.setIdConfiguracion("CON000001");
            sqlsesion.insert("Data.Configuracion.ServicioConfiguracion.insertConfiguracion",config);
            sqlsesion.commit();
            sqlsesion.close();
        }
    }
      
    public Configuracion getConfiguracion(){
        Configuracion config;
        try(SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            config = sqlsesion.selectOne("Data.Configuracion.ServicioConfiguracion.getConfiguracion");			
            sqlsesion.close();
        }
        return config;
    } 
}